Skip to content

5. 数组

5.1 认识数组

5.2 数组的定义和访问

静态初始化数组

  • 定义数组时直接赋值了
  1. 数组的写法特点是怎样的??

书写格式:

java
// 写法1
int[] ages = {1,2,3};

// 写法2(完整定义)
int[] ages2 = new int[]{3,4,5};

// 也可以写成
int ages3[] = {4,5,6};

写法3会有一个提醒,说,这可是C风格的写法哟。

  1. 数组属于什么类型?
  • 数组属于引用数据类型
  • 存储的数组在内存中的地址信息(打印看看)

动态初始化数组

  1. 动态初始化的特点
  • 写法:
java
int[] ages = new int[4];

可以看出,动态初始化只给长度,不给具体的数值。

  1. 动态初始化的默认值是多少

  2. 两种数组定义的方法各适合什么业务场景?

    • 动态:适合开始不确定具体元素,只知道个数的场景
    • 静态:适合一开始就知道要存入哪些元素值的场景

5.3 数组在计算机中的执行原理

数组的执行原理,JAVA程序的执行原理

多个变量指向同一个数组的问题

  1. 多个数组变量,指向同一个数组对象的原因是什么?需要注意什么?
    • 多个数组变量中存储的是同一个数组对象的地址
    • 多个变量修改的都是同一数组对象的数据
  2. 如果某个数组变量中存储null,代表什么?需要注意什么?
    • 代表这个数组变量没用指向数组对象
    • 可以输出这个变量,但不能访问对象内的内容,因为里面是空,访问会报错NullPointerException

练习

  1. 找出数组中的最大值(已写)
  2. 交换数组值(已写)
  3. 随机排名
    1. 定义一个动态初始化的数组用于录入员工工号
    2. 遍历数组中的每个元素
    3. 每遍历到一个数据,都随机一个索引值出来,让当前数据与该索引位置处的数据进行交换
    4. 最后输出数组内容

Released under the MIT License.